perm filename NSF.NET[AM,DBL] blob
sn#450719 filedate 1979-06-18 generic text, type T, neo UTF8
OUTLINE FOR ONR WORKSHOP ON
KNOWLEDGE-SYSTEMS SCIENCE AND ENGINEERING
The foundation of each of the projects to be covered in the workshop --
and subsequent book -- is expert knowledge. They must deal with its acquisition
from practitioners, its accomodation into the existing data base, and its
use to solve problems. Continued work on these topics provides new techniques
and mechanisms for the design and construction of knowledge-based programs;
experiences gained from the actual construction of these systems then feeds
back both (i) evaluative information on the ideas' utility and (ii) reports
of quite specific problems and the ways in which they were overcome, which
may suggest some more general method to be tried in other programs. This
is the cycle of development of core theory and individual projects that
comprises the paradigm of our field today.
Below is an outline of the various aspects of current core research in
knowledge systems science and engineering. While not every project will
have components along each of these dimensions, it will be useful for each
participant to present the theoretical side of his contribution as a subset
of this organization:
1. Knowledge Acquisition
Ways in which new domain-dependent facts and rules of
good judgment are obtained for the knowledge base.
a. Extraction of facts and heuristics from experts; Learning by
being told
b. Automatic discovery of new facts and heuristics
2. Knowledge Accomodation
Ways to represent and integrate new information (facts,
heuristics, conjectures) into a growing knowledge base.
a. Consistency among knowledge entered by an expert
b. Consensus among knowledge entered by different experts
c. Completeness of the knowledge base
e.g., how a program can know what it does and doesn't know
d. Discovery of new regularities (e.g. analogies) involving the
new knowledge
e. Representation of Knowledge (e.g., selecting an initial representation,
change of
representation, automatically extending schematized knowledge
representations,...)
3. Knowledge Utilization
Plausible reasoning, using inexact knowledge from an
incomplete, inconsistent knowledge base.
a. Problem solving and other "classical" general frameworks for
reasoning
b. Scenario rationalization and other specialized inference procedures
c. Theory formation
4. Knowledge Evaluation
Meta-level information about the knowledge base itself
and about the ways in which the program uses it.
a. Scientific evaluation of the fruits of the core research
b. Self-explanatory abilities possessed by each program
.
[[IRA: this will need to be refined and extended (e.g., you may wish to
de-emphasize the expert nature of the systems whic the outline presumes);
also, there must be another outline for the practical side of such projects,
though that will have less potential for generalization and less timelessness
than the above theoretical aspects.]]
Our objective is to investigate the nature of expert reasoning, both the
knowledge used and the procedures for manipulating it. By explicating the
reasoning process in this way, by building a program which carries out
some task, it is "de-mystified": it is metamorphized from an art to
a science. Ultimately, the construction of such programs becomes itself
a well-understood technical craft.
At the moment, the building of expert systems is itself such an opaque art
aspiring, through research efforts such as ours, to become a science. One
of the unifying themes of our research is the ultimate goal of understanding
the techniques employed in building such programs. It has always been difficult
to determine if a particular problem-solving method used in a particular
knowledge-based program is domain-specific or whether it can generalize
easily to other domains. In current knowledge-based programs, the domain
knowledge and the manipulation of it using AI techniques are often so intertwined
that it is difficult to uncouple them, to make a program useful for another
domain.
The goal, then, is to isloate AI techniques that are general, to determine
the conditions for their use.
It is distant but worth pursuing. As just one use to which we would put
such mastery if we had it, consider the construction of a very intelligent
front end, which guides new package users to accomplish their tasks, which
guides new system-modifiers to make changes in AI programs, and ultimately
which guides system-designers in writing knowledge-based programs.
1. Knowledge Acquisition
Our research is predicated upon a body of assumptions which all point to
knowledge as the appropriate focus, and to rule-based expert systems as
the appropriate experimental vehicles:
(1) Humans continually face searches in more or less immense spaces;
intelligence is the ability to bring appropriate knowledge to bear, to speed
up such searching. Increasing intelligence thus comprises (i) increasing
the amount of knowledge posssessed, (ii) improving its organization, and
(iii) refining the conditions for its applicability.
(2) Intelligent systems can make the applicability of their knowledge
explicit by representing it as condition-action (IF situation THEN appropriate-action)
rules. Such pattern-directed inference systems can benefit from a schematized
representation (frame, unit, being, actor, script, etc.) because this adds
structure which the rule descriptions can exploit. [[FOOTNOTE: I.e., by
a careful choice of slot types, the system builder can reduce most triggering
conditions to simple checks on the state of various slots of specific units.
Thus "If there are no known examples of disease X" can be coded as a quick
null-check on the "Examples" slot of X's unit, rather than as an exhaustive
search through an entire assertional database.]]
Extracting Facts & Heuristics from Experts
Introduction
"Relevant" problem solving knowledge includes much formal and informal expertise
of the domain expert; it also includes many mundane facts and figures that
make up the elementary knowledge of the domain. Before a computer system
can solve problems in the domain, this information must be transferred from
the expert to the computer.
Over the last decade, there has been some encouraging progress along this
dimension. To build DENDRAL, mass spectroscopy knowledge was added by a
painstaking process over several years. By contrast, PUFF was recently
created in less than 50 hours of interaction with experts and with less
than 10 man-weeks of effort by the knowledge engineers. The main reason
that the development was so rapid is that PUFF was built with the aid of
an interactive knowledge engineering tool, EMYCIN. When knowledge engineers
at the Heuristic Programming Project started the PUFF project, they already
had a reasoning framework in which to fit the problem and an "English-like"
language for expressing the diagnostic rules. The facilities that make EMYCIN
such a powerful tool are the direct result of the core research over the
last five years on the MYCIN program.
If, as we hope and expect, the coming decade sees a proliferation of knowledge-based
assistant programs in diverse fields, it is essential to make the transfer
of expertise from expert to program a smooth, well-understood procedure.
Ideally, we would see experts building their own assistance programs, coached
automatically to construct a usable knowledge base. Pulling the non-expert
out of the system-building process will reduce the distortion of the expert's
view of his world. But the domain expert should be free to devote his time
to organizing the knowledge of his field, not to understanding some complex
computer system.
Contributors to this area should attempt to address some of the following
eight research issues:
1. How systems can provide on-line assistance (as opposed to reference
to a printed instruction manual.) A simple first step toward this is a
facility to list and then describe the user's options at any point; more
sophisticated would be some kind of teacher or knowledgable coach.
2. How systems should deal differently with the novice and experienced
user, and more generally build up and employ schematized user models.
3. In what kind of language should the user describe knowledge?
Our current hypothesis is that it should be one closely resembling his
normal language. This does not necessarily mean a full natural language
capability, because the language of experts is usually quite constrained.
This enhances the "readability" of the knowledge base by other experts.
4. Language is not always the best choice for inputting. How does
the method of describing concepts (inputting new knowledge) depend on the
type of the concept? (E.g., the knowledge acquistion system should recognize
that the most natural way for the expert to describe logical expressions
is not also the best way of describing the structure of a chemical molecule.)
5. What kinds of routine documentation can the system take care
of automatically for the user?. E.g., record when and by whom knowledge
about a particular entity was first described and subsequently modified.
6. Correcting and expanding the knowledge base is a large part
of many users' tasks; in what ways can the system itself facilitate this
process?
7. Computer scientists should not try to design interactive knowledge
acquisition programs without the direct consultation of users. Features
that seem trivial or clever to one group may be vital or useless, respectively,
to the other. To avoid this mismatch, how might the experts participate
in the system design phase?
8. Davis was surprised how rarely the Teiresias program's snappy
advice like "Every other rule relating to bacteremia mentioned culture
site, why didn't you?" was welcome [ref]; Goldstein has reported similar
needs for restraint [ref]. We apparently are just beginning to recognize
rules of good judgment for automatic coaching, for giving advice to experts.
Automatic Discovery of new facts and heuristics
One important aspect of our core research outline is a focus on automated
discovery. An effort begun by HPP several years ago, Meta-Dendral [ref],
was capable of inferring new rules of mass spectroscopy, given pairs of
spectra and their correct identifications. A more recent effort resulted
in a program, AM [ref], which defines new mathematical concepts, gathers
empirical data about them, and notices regularities in that data. Both
projects pioneered the field of automatic theory formation, and have demonstrated
its feasibility in widely disparate domains.
Some of the issues which should be addressed by projects which fall into
the Discovery category include:
1. Open-ended discovery is inherently an exploration in an immense
search space; how can knowledge be used to make this tractible? For example,
AM used heuristic rules as plausible move generators, to suggest promising
courses of action to follow next. But then the power of a system is limited
by the heuristics we supply initially, unless:
2. How can new heuristics themselves be discovered? E.g., can
heuristics be treated just like any other domain concepts?
3. What are the different types of learning, and the peculiarities
of each? E.g., learning by being told, by observing, by discovering, by
proving, etc.
4. What does the "space of heuristics" look like?
2. Knowledge Accomodation
One of the most fundamental problems facing the builder of a knowledge-based
program is how to represent that knowledge. Statically, we can ask: What
would a "snapshot" of the knowledge base at some instant look like? More
dynamically: How is new information integrated into the growing structure?
These are concrete research issues which we find outselves bumping against
as the sizes of our program's knowledge bases grow larger and larger.
With a knowledge base of giant proportions, it is no longer feasible to
exhaustively search through it while inferencing. Rather, some structure
must be imposed upon it, and that structure is then exploited to speed up
the location of potentially relevant parts of the KB (knowledge base).
Most current AI research efforts employ one or antoher variant of schematized
representaion: the KB is structured into modules (units, frames, scripts,
actors, beings, contract nets, personae, stereotypes, schemata) which have
subdivisions (slots, facets, aspects, parts) which in turn may have subdivisions
(subslots). The use of such schematized representations is even more crucial
for large expert systems based around heuristic rules: by a judicious choice
of slot (and subslot) types, most of the tests made in the conditions (IF-part)
of heuristic rules can be reduced into trivial, quick checks on the state
of some (sub)slot of some schema. E.g., "If there are no known examples
of disease X" can be coded as a quick null-check on the "Examples" slot
of X's unit, rather than as an exhaustive search through an entire assertional
database.
Among the issues such research is forced to deal with are:
1. The consistency and validity of knowledge entered by an expert.
How he communicates his certainty to the system, and what it does if contradictory
inputs are located. When and how should such contradictions be sought? In
DENDRAL, an overall domain-specific matching function was used which reflected
a priori probabilities of errors in the data. More sophisticated answers
are needed, though, as the magnitude of the knowledge base grows. The issue
is not whether reasoning can be effectively done even with an inconsistent
knowledge base, but how to do it. The key observation is that for very
large, complex knowledge bases, eliminating an inconsistent entry will
frequently make the system perform worse, not better, in the long run.
2. The consensus of knowledge among experts. Often two eminent
experts will disagree strongly on some rule of judgement, e.g. about which
drug to administer for a particular infection, or about when to search formally
for a proof versus spend time gathering examples. Even though each expert
may possess a set of heuristics which work well as a group, simply unioning
their two sets may produce a body of heuristics which work at cross purposes
and are much less effective than either was originally. The more fortuitous
converse case also occurs, namely the synergy that
can result when rules from two experts interact to produce something neither
expert alone would have thought of. Should consensus be sought? If so,
how? When is it better to preserve disparity and try for the kind of synergy
illustrated previously?
3. The completeness of the knowledge base. How can an expert --
and the system -- know what knowledge the system has and, perhaps much
more critically, what information it doesn't possess. One solution might
be to have a strong model of the domain, a structured representation which
makes it obvious when some gap in the knowledge exists, namely because some
slot or other will be blank. In most fields, experts will want to discriminate
between (i) the absence of evidence and (ii) the evidence of absence.
4. What sorts of processing should be done when new data are entered,
and what should be deferred? This type of forward processing could include
searching for ties to existing knowledge, computing what impact this knowledge
would have had in prior situations, checking for consistency (and reconciling
or initiating a dialogue if some inconsistency is noticed), checking for
consensus, checking for analogies to existing knowledge, etc. This is open-ended
and data-driven -- not problem-solving at all, really, yet must be dealt
with.
5. Since knowledge representaion is so crucial, it would be very
desirable to investigate such topics as initial selection of representation,
communication of new representations to students, change of representation,
extension of an existing representation, and discovery of new representations.
The state of knowledge about such topics is so limited that we expect most
efforts reported on oby contributors to the workshop will be much more limited
in scope. E.g., the Eurisko project (successor to AM) is producing a language
for defining new slot types out of old ones (e.g., as the composition, or
the transitive closure, or the union,...), then permitting the program to
explore new types of slots just as it is permitted to explore new definitions
of mathematical concepts and new heuristics.
6. Representing time-based knowledge. Several problems which AI
is currently working on involve situations that evolve over time. The
basic issues are (i) time-specified reference to objects and (ii) tracking
causal changes on objects over time. [[IRA: we should probably generalize
this to representing things which are awkward in KRL and other current units
languages: including mass nouns, counterfactual conditionals, and all the
other things that Bob Moore talked about last year.]]
7. Grain Size in Complex Systems. Among the virtues of production
rules are (i) their modularity allows easy addition and modification of
inferential knowledge and (ii) they can be written in such a way that their
grain size seems appropriate for explanation systems. As we move toward
hierarchical reasoning methods the grain size of individual production rules
seems too small for coherent explanations. Just as the reasoning methods
work with abstractions to reduce the combinatorics, explanations of this
should also be abstract. At present, the problem of factoring knowledge
is an opaque art. When a frame-structured representation is used, a knowledge
engineer makes decisions about what facts to group together. This decision
takes into account indexing during problem solving and the interactions
among items in the knowledge base. In hierarchical reasoning methods knowledge
is viewed with a varying grain size; it starts with an abstract conceptualization
at the beginning of problem solving and moves toward finer detail as the
solution proceeds. Although AI has some understanding of how to organize
a body of knowledge hierarchically, much work remains to be done to make
the best use of that organization during knowledge acquisition and problem
solving.
3. Knowledge Usage
A knowledge based system comprises a knowledge base plus an inference engine.
Even those researchers who hold that the former deserves the most attention
are nonetheless driven to experiment with the latter, with new forms of
problem solving methods, with techniques of knowledge manipulation.
More specifically, they are studying such topics as cooperating knowledge
sources (HSII-like) reasoning frameworks, opportunistic (best-first) agenda
schedulers, reasoning with abstractions, orthogonal planning (planning about
planning), scenario rationalization (given a trace of some events, use
a body of heuristic rules backwards to parse that scenario, to account for
the event sequence and the results), inexact plausible reasoning, and other
techniques. As we construct expert programs for increasingly knowledge-rich
domains, the need increases to reason ever more symbolically about the justifications
for their beliefs.
Some efforts concentrate upon the use of knowledge to form new theories
and extend existing ones. Issues to be dealt with here include: What characteristics
make a domain more or less amenable to such automation? How can hypotheses
be evaluated, and how can such judgmental rules be improved gradually with
experience? When is it appropriate to employ plausible move generators,
and when is it preferable to use heuristics as constratints on a legal move
generator? How can a problem solving program be extended to propose "interesting"
new problems to attack?
4. Knowledge Evaluation
Once a knowledge-based system is built and used, a whole new source of information
is available: meta-level judgments on the performance of that system. The
experts using the system in situ can feed back evaluations as to its potency;
scientists reading articles about its design can feed back theoretical evaluations
as to its contributions to the field of knowledge engineering; the system
itself can monitor its behavior, and can come up with self-descriptions,
with explanations of why it chose some particular action to do at time x,
patterns of its own behavioral patterns, etc.
For programs upon which experts are relying in actual practice, AI researchers
have found it very helpful to construct self-explanation subsystems. An
early example of this sort of capability was Winograd's SHRDLU program,
which could answer Why? questions by tracing up its goal stack and How?
questions by tracing down it. In HPP programs, self-explanation systems
so far employed have taken two basic forms: canned text explicating rules
[ref. to Prospector and/or to Lenat's PUP6 IJCAI4 article] and backtracking
through rule invocation [ref. to Mycin and Teiresias]. Both explanation
methods undeniably add to user confidence. The improvement and extension
of the existing two types is an important task which may well lead to new
discoveries, and the design of new types of explanatory subsystems is under
investigation (e.g., programs which represent their own entire control structure,
which would enable them to interpretively introspect upon the minutae of
their own behavior). Others are studying methods for modifying the level
of explanation based on the abstractions used by the program and a model
of the user.
The act of explaining the knowledge has led to the problem of using the
knowledge base for tutoring purposes. What are the rules of good judgment
for presenting the contents of a knowledge base represented as a set of
rules, and extending those methods for relating to the user the contents
of knowledge bases stored in other representations?